草庐IT

algorithm - 用户匹配算法

全部标签

javascript - 寻找算法来找到颜色区域的边界

我有一个画有图像的Canvas。当用户点击图片时,我需要找到用户点击的颜色区域。一个区域被定义为一组4路连接的像素,其颜色与被点击的像素相同。我需要一个可以用来在Canvas上设置剪切路径的形式的区域,这样我就可以用渐变等填充该区域。是否有有效的算法来寻找边界?比洪水填充算法更优化的东西(我不需要填充,我只需要在我的区域周围找到一条路径)。 最佳答案 我相信MooreNeighborhood追踪算法会做你想做的事。根据定义,MooreNeighborhood着眼于8连通性,但您应该能够轻松地将其调整为4连通性。如果您测试8-连通性,

javascript - 在 Javascript 中查找坏点的算法

我正在尝试创建一种算法,用于从.csv格式的强度图中检测和计算坏点。我目前的方法是将我正在测试的像素的值除以紧邻右侧的像素值(或者,如果在最右侧,则为左侧的像素值)。如果红利小于某个阈值(当前为.9),那么我将其标记为坏点。我的问题是,是否有更好/更有效的方法来计算像素是否失效?示例csv输出:3183317632073183321232113197319831833191319331771135318531763175318431883179318131813165318431873183在此示例中,中间像素将是“死”像素。 最佳答案

javascript - 匹配至少四分之三的正则表达式要求的最佳方法

在密码策略中,有4个要求。它应该包含以下任何三个小写。大写。数字。特殊字符。以下正则表达式将匹配所有情况^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?=.*[^a-zA-Z0-9]).{4,8}$我知道我可以使用'|'然而,声明所有组合,这将产生一个超长的正则表达式。替换'|'的最佳方法是什么以便它可以检查输入是否包含组合中的三个条件中的任何一个? 最佳答案 如果您使用的是PCRE风格,则以下内容可以满足您的需求(为了便于阅读而格式化):^(?:((?=.*\d))((?=.*[a-z]))((?=.*[A-Z]

等待用户输入的javascript嵌套循环

我不久前用C#构建了一个C解释器,现在开始将其转换为Javascript。一切都很顺利,直到我意识到js没有sleep功能。我的解释器使用递归解析器,当它嵌套了多个函数时,它会暂停以等待用户输入(在C#中,我在第二个线程中使用了waithandle)。我看过setInterval和setTimeout但它们是异步/非阻塞的;当然,busywait是不可能的,我查看了在SO上找到的timed_queue实现,但没有运气。我在主窗口和网络worker中都尝试过解析器。我正在使用jQuery。我对js的经验有限,正在寻找可以追求的想法。我对持续传球风格或yield知之甚少,想知道它们是否可能

javascript - 为密码匹配指令编写单元测试

我在这里有一个指令,我正在尝试编写一个单元测试-第一次做这种事情。我不知道该怎么做。这是指令代码和HTML:app.directive('passwordMatch',[function(){return{restrict:'A',scope:true,require:'ngModel',link:function(scope,elem,attrs,control){varchecker=function(){vare1=scope.$eval(attrs.ngModel);vare2=scope.$eval(attrs.passwordMatch);if(e2!=null)retur

javascript - 如何检查并返回数据直到没有匹配项?

我创建了一个函数,它将在JSON文件中搜索不同的标签,如[image]和[gallery]等标签。如果匹配,它将返回并用新的输出替换它。像图像对象或幻灯片。一个JSON对象可以包含多个相同类型的标签,也可以同时包含不同的标签。因此一个对象可以包含两个[image]标签,例如JSONhttp://snippi.com/s/bzrx3xi问题是,如果找到多个[image]标签,它会被替换为相同的内容。我一直在寻找一个正在搜索标签的脚本,直到不再有匹配项为止。非常感谢@debatanu提供的解决方案。不幸的是,我对脚本有一些额外的希望,因为现在像图像这样的标签将被替换为JSON中媒体数组的最

javascript - "visit each door once"问题的规范算法

有许多谜题是经典“柯尼斯堡七桥”谜题的变体,在这些谜题中,您必须找到一条穿过一组房间的路线,而无需两次使用门。这是一个没有解决方案的例子。...是一个稍微修改过的谜题,确实有一个解决方案,正如您在此处看到的那样。我对解决这类问题的编程方法很感兴趣,虽然有很多方法可以确定房间和门的特定配置没有解决方案,但我对计算要访问的门列表很感兴趣解决难题。查看问题的一种方法是将其配置转换为图形并求解哈密顿量。然而,由于禁止“掉头”的约束,此类问题需要解决不优雅的逻辑。我在几分钟内破解了一个解决方案来展示问题。这是一种将“房间”分组的蛮力解决方案,具有附加的不变性,即您不能在同一个房间中从一个“门”移

javascript - 使用 React.js 将 className 赋予 forEach 循环中的匹配元素

伙计们,我在我的示例中有一个随机词,我正在将该随机词的字母拆分为跨度。然后我检查该单词中是否有特定字母并使用forEach循环来实现此目的。这是我的职责;getLetter:function(e){varval=e.currentTarget.textContent;this.state.letters.forEach(function(letter){if(letter===val){alert("Thereis'r'letterintheword.")e.target.className='clicked';letter.className='foundedLetter';}});

javascript - 使用 nodeJS async-await 反复提示用户直到解决

我尝试反复向用户提问,直到他们使用此代码给出正确答案。问题是,如果用户没有在第一时间给出正确答案,则无法解决。varreadline=require('readline');varrl=readline.createInterface({input:process.stdin,output:process.stdout});functionpromptAge(){returnnewPromise(function(resolve){rl.question('Howoldareyou?',function(answer){age=parseInt(answer);if(age>0){re

javascript - 在 npm 脚本中匹配多个文件扩展名

我有一个npm脚本,我想在其中匹配ts和tsx文件扩展名......如下所示:"test":"mocha.....app/test/**/*.spec.{ts,tsx}"但是,上面的语法不起作用。执行此操作的正确语法是什么? 最佳答案 你的模式是正确的。你的问题是你的shell试图为你扩展你的glob而不是让mocha扩展它。要解决此问题,您需要对glob进行双引号(请注意,双引号必须使用\进行JSON转义):"test":"mocha.....\"app/test/**/*.spec.{ts,tsx}\""如果您不关心Window